﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


using HA.ModFlow .Infrastructure;


namespace HA.MT3DMS.DomainLayer
{
    /// <summary>
    /// 存放对应于某一个污染物的输出文件的结果信息
    /// </summary>
    public   class MT3DSpeciesResult
    {


        #region 构造函数

        public MT3DSpeciesResult()
        {

            this._speciesOutputFileResult = new List<OutputFileData>();

        
        }

        #endregion


        #region 字段属性

        List<OutputFileData > _speciesOutputFileResult;
        /// <summary>
        /// 某个污染物输出的文件的详细信息，Count应该等于输出的文件的个数
        /// </summary>
        public List<OutputFileData> SpeciesOutputFileResult
        {
            get { return _speciesOutputFileResult; }
            //set { _speciesOutputFileResult = value; }
        }






        string _specieName;
        /// <summary>
        /// 污染物名称
        /// </summary>
        public string SpecieName
        {
            get { return _specieName; }
            set { _specieName = value; }
        }


        //string _specieID;
        ///// <summary>
        ///// 污染物 ID
        ///// </summary>
        //public string SpecieID
        //{
        //    get { return _specieID; }
        //    set { _specieID = value; }
        //}






        //int _outputFileNum;
        ///// <summary>
        ///// 输出的文件个数
        ///// </summary>
        //public int OutputFileNum
        //{
        //    get { return _outputFileNum; }
        //    set { _outputFileNum = value; }
        //}


        #endregion


        #region 内部方法


        #endregion

        #region 公有方法

        /// <summary>
        /// 添加一条污染物输出的文件的数据信息到集合中
        /// </summary>
        /// <param name="outputFileData"></param>
        public void AddSpeciesFileResult(OutputFileData outputFileData)
        {

            if (this._speciesOutputFileResult != null)
            {
                this._speciesOutputFileResult.Add(outputFileData);

            }
            else
            {
                this._speciesOutputFileResult = new List<OutputFileData>();

                this._speciesOutputFileResult.Add(outputFileData ); 
            }
        
        
        }

        #endregion




    }



    public class OutputFileData
    {


        #region 构造函数

        public OutputFileData()
        { 
        
        
        }


        #endregion




        #region 字段属性


        string _fileLabel;
        /// <summary>
        /// 文件标签  可以是文件名 1.txt 或者 id 1等
        /// </summary>
        public string FileLabel
        {
            get { return _fileLabel; }
            set { _fileLabel = value; }
        }
       

        int transStep = 1;//传输步长
        /// <summary>
        /// 传输步长
        /// </summary>
        public int TransStep
        {
            get { return transStep; }
            set { transStep = value; }
        }
        int timeStep = 1;//时间步长
        /// <summary>
        /// 时间步长
        /// </summary>
        public int TimeStep
        {
            get { return timeStep; }
            set { timeStep = value; }
        }
        int stressStep = 1;//应力期
        /// <summary>
        /// 应力期
        /// </summary>
        public int StressStep
        {
            get { return stressStep; }
            set { stressStep = value; }
        }
        double time = 1;//时间
        /// <summary>
        /// 时间
        /// </summary>
        public double Time
        {
            get { return time; }
            set { time = value; }
        }
        string conc = "";//浓度
        /// <summary>
        /// 浓度标志
        /// </summary>
        public string Conc
        {
            get { return conc; }
            set { conc = value; }
        }
        int col = 1;//总列数 J
        /// <summary>
        /// 网格总列数  J
        /// </summary>
        public int Col
        {
            get { return col; }
            set { col = value; }
        }
        int row = 1;//总行数 I
        /// <summary>
        /// 网格总行数  I
        /// </summary>
        public int Row
        {
            get { return row; }
            set { row = value; }
        }
        int layer = 1;//总层数 K
        /// <summary>
        /// 网格总层数  K
        /// </summary>
        public int Layer
        {
            get { return layer; }
            set { layer = value; }
        }

        CellCenterDataSet3d _cellCenterGridValue;
        /// <summary>
        /// 网格浓度数据
        /// </summary>
        public CellCenterDataSet3d CellCenterGridValue
        {
            get { return _cellCenterGridValue; }
            set { _cellCenterGridValue = value; }
        }



        #endregion



        #region 内部方法


        #endregion




        #region 公有方法



        #endregion










    }













}
